iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 2
0

前言

似乎開發者都很怕被人罵自己的設計不足 (under engineering)、彈性延展性太差、不夠強壯 (robust),不論是誰都可用、不論大雞小雞都想殺,因此,我反而以為,開發者的過度設計比設計不足還要常見。
--喲哪桑 Speaking 之專案工作日誌:過度設計

當我上一篇雄心壯志地寫下「我們要從頭打造一個 PHP 框架」時,你可能會認為我們將會打造一個比 Phalcon 更快、比 Laravel 更好用或比 Symfony 支援更多元件的框架,而且它將會以 原生 PHP 的方式撰寫。

請恕我在這邊潑你一身冷水,我認為初期的過度設計將會讓我們的計畫顯得窒礙難行:相反地,初期我們可能會寫不少 Spaghetti code(麵條式程式碼),並在未來一次次的重構中漸漸改善它們,使它們越來越現代化。
同時,在這份挑戰中我也不打算重複造輪子,我將會使用許多現成的元件並將它們打造成我們期望的樣式。記住,即便是最熱門的 Laravel PHP Framework,也使用了許多 Symfony Components,這些經驗與這些程式碼不是我們的敵人。

記住,我們不是為了打造另一個 Symfony Framework 或 Laravel Framework,在一篇篇文章中,所以我們要時常思考「這樣規畫下,有什麼是比現有框架更優秀的,又有什麼東西是可以從現有框架中借鑑的」

框架規畫

命名

  • 框架:chivincent/rafax (Rafax:蘿菲思,抗鬱劑)
  • 應用程式:chivincent/bach (Bach:巴赫,音樂之父)

註:你可以自行選用屬於自己的命名,這邊僅僅作為範例

原則

  • 不會特地將 Rafax 與 Bach 做分離(它將會在同一個 repository 下)
  • 優先遵守 PSR 系列已通過(Accepted)規範:
    • Coding Style:PSR-2
    • Autoloading:PSR-4
    • HTTP Message:PSR-7
  • 以 Symfony Components 為基礎,但不侷限於 Symfony Components 的使用

原始碼


上一篇
為何要從頭打造一個框架?
下一篇
準備工作
系列文
重新理解 PHP:從頭打造 Web Framework9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言